/*
 * @Author: chengjiang
 * @Date: 2025-04-14 20:39:46
 * @Description:
 */

export interface InvoiceData {
  id: number;
  code: string; // 发票代码
  number?: string; // 发票号码
  date?: string; // 开票日期
  orderUserName: string; // 制单人。
  approveUserName: string; // 审核人。
  getUserName: string; // 提货人。
  seller: {
    address: string; // 地址电话
    name?: string; // 销售方名称
    phone: string; // 地址电话
    taxId?: string; // 纳税人识别号
  };
  buyer: {
    desc?: string; // 备注
    name: string; // 买方名称
    taxId?: string;
  };
  items: Array<{
    amount?: number; // 金额
    convertedWeight?: number; // 转换重量
    date?: string;
    desc?: string;
    id: number;
    inputWeight?: number; // 收料重量
    name?: string; // 商品名称
    price?: number; // 单价
    purity?: number; // 成色
    sort: number; // 排序
    totalFee?: number; // 工费小计
    type: string; // 类型
    unit?: string; // 单位
    weight: number; // 重量：g
  }>;
  totalFee?: number; // 工费小计
  totalWeight: number; // 总重量：g
  type: string; // 发票类型。
  title: string; // 标题。
  convertedWeight?: number; // 转换重量
  inputWeight?: number;
  // 其它信息。
  yilian: string;
  erlian: string;
  sanlian: string;
}

export const toSafeNumber = (input: number | string) => {
  if (typeof input === 'number') return input;
  const num = Number.parseFloat(input);
  return Number.isNaN(num) ? 0 : num;
};

// 向上取整：
export const ceilNumber = (input: number | string): number => {
  const num = typeof input === 'number' ? input : Number.parseFloat(input);
  return Math.ceil(Number.isNaN(num) ? 0 : num);
};
